import { useIntersectionObserver } from '@vueuse/core'
import { ref } from 'vue-demi'

// 数据懒加载函数

export const useLazyData = (apiFn) => {
  // 被观察的对象
  const target = ref(null)
  // 请求回来的数组
  const result = ref([])
  const { stop } = useIntersectionObserver(
    target, ([{ isIntersecting }]) => {
      if (isIntersecting) {
        stop()
        // 调用请求接口
        apiFn().then(data => {
          result.value = data.result
        })
      }
    }, {
      threshold: 0
    }
  )
  return { target, result }
}
